package com.kuangkuang.yimusic.logic.network.baseservice

import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

/**
 * ServiceCreatorForWeb单例类
 * 指定发送请求的根路径BASE_URL
 */
object ServiceCreatorForWeb {

    /**
     * 后端服务器地址
     */
    private const val BASE_URL = "http://"

    private val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()

    /**
     * 提供给外部一个调用Retrofit.Builder()方法，
     * 获取一个接口只要使用
     * ServiceCreatorForWeb.create(对应的网络服务class::java)
     */
    fun <T> create(serviceClass: Class<T>):T= retrofit.create(serviceClass)

    /**
     * 使用泛型简化构建方法
     * 直接使用ServiceCreatorForWeb.create<服务类>()
     */
    inline fun <reified T> create():T = create(T::class.java)
}